#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>

using namespace std;

//        int StrToInt(string str) {
//            int ret = 0;
//            int size = str.size();
//            if (size == 0)
//            {
//                return 0;
//            }
//            for (int i = str.size() - 1; i >= 0; i--)
//            {
//                if ((i == 0 && str[i] != '+' && str[i] != '-' && (str[i] > '9' || str[i] < '0')))
//                {
//                    return 0;
//                }
//                if (i != 0 && (str[i] > '9' || str[i] < '0'))
//                {
//                    return 0;
//                }
//                if (str[i] >= '0' || str[i] <= '9')
//                    ret += (str[i] - 48) * pow(10, size - 1 - i);
//            }
//            if (str[0] == '+')
//            {
//                return ret;
//            }
//            else if (str[0] == '-')
//            {
//                return -ret;
//            }
//            else
//            {
//                return ret + pow(10, size - 1);
//            }
//        }
//
//        string addStrings(string num1, string num2) {
//            string ret = "";
//            int end1 = num1.size() - 1;
//            int end2 = num2.size() - 1;
//            int carry = 0;
//            int tmp = 0;
//            while (end1 >= 0 || end2 >= 0)
//            {
//                int val1 = 0, val2 = 0;
//                if (end1 >= 0)
//                {
//                    val1 = num1[end1] - '0';
//                }
//                if (end2 >= 0)
//                {
//                    val2 = num2[end2] - '0';
//                }
//                tmp = val1 + val2 + carry;
//                ret += tmp % 10+'0';
//                carry = 0;
//                if (tmp >= 10)
//                {
//                    carry = 1;
//                }
//                end1--;
//                end2--;
//            }
//            if (carry == 1)
//            {
//                ret += '1';
//            }
//            int left = 0;
//            int right = ret.size() - 1;
//            while (left < right)
//            {
//                char tmpe = ret[left];
//                ret[left] = ret[right];
//                ret[right] = tmpe;
//                left++;
//                right--;
//            }
//            return ret;
//        }
//
//class Solution {
//public:
//    void rev(string&s, int left, int right)
//    {
//        while(left<right)
//        {
//            char tmp = s[left];
//            s[left]=s[right];
//            s[right] = tmp;
//            left++;
//            right--;
//        }
//    }
//    string reverseWords(string s) {
//        int pre = 0;
//        int cur = s.find(' ',0);
//        while(cur!=string::npos)
//        {
//            rev(s,pre,cur-1);
//            pre = cur+1;
//            cur = s.find(' ', cur+1);
//        }
//        rev(s,pre,s.size()-1);
//        return s;
//    }
//};

string addStrings(string num1, string num2) {
    string ret = "";
    int end1 = num1.size() - 1;
    int end2 = num2.size() - 1;
    int carry = 0;
    int tmp = 0;
    while (end1 >= 0 || end2 >= 0)
    {
        int val1 = 0, val2 = 0;
        if (end1 >= 0)
        {
            val1 = num1[end1] - '0';
        }
        if (end2 >= 0)
        {
            val2 = num2[end2] - '0';
        }
        tmp = val1 + val2 + carry;
        ret += tmp % 10 + '0';
        carry = 0;
        if (tmp >= 10)
        {
            carry = 1;
        }
        end1--;
        end2--;
    }
    if (carry == 1)
    {
        ret += '1';
    }
    int left = 0;
    int right = ret.size() - 1;
    while (left < right)
    {
        char tmpe = ret[left];
        ret[left] = ret[right];
        ret[right] = tmpe;
        left++;
        right--;
    }
    return ret;
}
string multiply(string num1, string num2) {
    if (num1 == "0" || num2 == "0")
    {
        return "0";
    }
    string tmp = "0";
    string ret = "0";
    for (int i = num1.size() - 1; i >= 0; i--)
    {
        for (int j = num2.size() - 1; j >= 0; j--)
        {
            tmp = "";
            int val1 = num1[i] - '0';
            int val2 = num2[j] - '0';
            char tmp1 = val1 * val2 / 10 + '0';
            char tmp2 = val1 * val2 % 10 + '0';
            string a = "";
            a += tmp1;
            if (val1 * val2 >= 10)
            {
                tmp = addStrings(tmp, a);
            }
            tmp += val1 * val2 % 10 + '0';
            int k = (num1.size() - 1 - i + num2.size() - 1 - j);
            while (k--)
            {
                tmp.push_back('0');
            }
            ret = addStrings(ret, tmp);
        }
    }
    return ret;
}
//int main()
//{
//    //string str("+123");
//    //int ret = StrToInt(str);    
//    //string ret = addStrings("9", "1");
//    //cout << ret;
//    //Solution A;
//    //string ret = A.reverseWords("Let's take LeetCode contest");
//    //cout << ret;
//    string ret = multiply("2", "3");
//    cout << ret;
//    //string a = addStrings("23", "17");
//    //cout << a << endl;
//    return 0;
//}

int main()
{
    string str;
    getline(cin, str);
    size_t pos = str.rfind(' ');
    cout << str.size() - pos - 1 << endl<<pos;
    return 0;
}